<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>
    <script>

        // then方法的返回值：
            // — 默认成功状态的Promise状态，值是回调函数最终的返回值。
            // — 当then中的回调函数返回的是一个Promise时，then的返回状态和值与Promise保持一致
            // — 当then中有报错没处理则返回失败的Promise,值为错误信息
            // — 无论是成功的promise实例还是失败的promise实例调用then,then的返回值规则保持不变



        const p1 = new Promise((resolve, reject) => {
            console.log("获取A的数据........");
            try {
                // throw new Error("网络错误A")
                setTimeout(() => {
                    console.log("A的数据获取成功");

                    resolve("成功")
                }, 3000)
            } catch (e) {
                reject(e.message)
            }
        })

        const p2 = p1.then(() => {
            return new Promise((resolve, reject) => {
                console.log("获取B的数据.........");
                try {
                    throw new Error("网络错误B")
                    setTimeout(() => {
                        console.log("B的数据获取成功");
                        resolve("成功")
                    }, 3000)
                } catch (e) {
                    reject(e.message)
                }
            })
        },()=>{
            return 1
        })



        console.log("p1", p1);
        console.log("p2", p2);
    </script>




</body>

</html>